# Column Configuration

Defines site columns (fields) that can be reused across document libraries and content types.

Referenced by: SiteCfg.Columns, DocLibCfg.Columns, ContentTypeCfg.Columns.

# Overview

ColumnCfg defines a SharePoint field/column with its type, validation rules, display format, and default values. Columns are created at the site level and can be added to multiple libraries and content types.

# Applied when

Site columns are created when:

  • The parent SiteCfg is provisioned and references this column via Columns array
  • OR a DocLibCfg references this column via Columns array (creates library-scoped column)
  • OR a ContentTypeCfg references this column via Columns array (adds column to content type)
  • Applied during site or library provisioning; columns are created before they are assigned to content types or added to libraries
  • Retroactive changes to column properties (field type, validation rules) may require manual SharePoint administration or column re-creation

# Core settings

# Name

Type: string | Required: Yes

Unique name used in configuration references to identify this column.

Example: "MatterCode", "ClientName"

# Group

Type: string | Required: No

Field group for UI organization in SharePoint forms and settings.

Example: "Matter Information", "Client Details"

# Title

Type: string | Required: Yes

Display name shown in the UI and column headers.

# Description

Type: string | Required: No

Field description shown in item forms and column settings.

# FieldType

Type: enum | Required: Yes

Data type of the column. Common types: Text, Note, Integer, Number, DateTime, Choice, MultiChoice, Lookup, User, UserMulti, Boolean, Calculated, Taxonomy.

# Required

Type: bool | Required: No | Default: false

Make the field required. Users must provide a value when creating or editing items.

# EnforceUniqueValues

Type: bool | Required: No

Enforce unique values across items in the library or list. Only applies to indexed fields. When enabled, SharePoint prevents duplicate values in this column.

# DefaultValue

Type: string | Required: No

Default value for new items when created. Special behavior for Boolean fields: If this property is empty or null for a Boolean column, it is automatically set to "Yes".

# Indexed

Type: bool | Required: No

Create an index on this column for faster queries and filtering. Enable for columns frequently used in views, filters, or lookups.

# Hidden

Type: bool | Required: No | Default: false

Hide from the UI (useful for system columns that should not be edited directly by users).

# Text and number columns

# TextMaxLength

Type: int | Required: No | C#: TextMaxLength | Configurator: "MaxLength"

Maximum length for text columns. Valid range: 1–255 characters. When set, users cannot enter more than this many characters.

# Note/rich text columns

# UnlimitedLength

Type: bool | Required: No | Configurator: "Unlimited Length"

Allow unlimited text length in document libraries. When enabled, users can enter text of any length. When disabled, SharePoint enforces a limit (typically 255 characters for standard note fields).

# NumberOfLines

Type: int | Required: No | Configurator: "Number of lines"

Number of text input lines displayed in forms. Controls the height of the text input box. Typical values: 3–10 for short notes, 10–20 for rich text.

# Lookup columns

# LookupListName

Type: string | Required: Conditional | Configurator: "ListName"

Name of the source list for lookup values. Required when FieldType = Lookup. The lookup column retrieves values from this list. The list must exist in the same site or a specified site.

Example: "Clients", "MatterTypes"

# LookupFieldName

Type: string | Required: Conditional | Configurator: "FieldName"

Field in the source list to display or link to. Required when FieldType = Lookup. Must match a column name in the list specified by LookupListName. This is the field value shown to users.

Example: "Title", "ClientCode"

# LookupAllowMultipleValues

Type: bool | Required: No | Default: false | Configurator: "AllowMultipleValues"

Allow multiple selections from the lookup list. When enabled, users can select multiple items. When disabled, users can select only one item.

# Calculated columns

# CalculatedFormula

Type: string | Required: Conditional | Configurator: "Formula"

Formula expression for calculated fields. Required when FieldType = Calculated. Uses SharePoint field formula syntax.

Example: =[Field1]+[Field2], =UPPER([Title]), =TODAY()

# CalculatedOutputType

Type: enum | Required: No | Configurator: "Output Type"

Output type of the calculated result. Valid values: Text, Number, Currency, DateTime, Boolean. Determines how the result is displayed and formatted.

# DefaultFormula

Type: string | Required: No

Alternative formula name or expression. Rarely used; CalculatedFormula is the standard approach.

# Taxonomy/managed metadata columns

# TaxonomyTermset

Type: string | Required: Conditional | Configurator: "Termset"

Termset name for managed metadata columns. Required when FieldType = Taxonomy. Must reference an existing term set in the managed metadata service.

Example: "Locations", "Document Classification"

# TaxonomyTermGroup

Type: string | Required: Conditional | Configurator: "Termgroup"

Term group name that contains the termset. Required when FieldType = Taxonomy. Provides the scope for the termset lookup.

# DateTime columns

# DateTimeFriendlyDisplayFormat

Type: enum | Required: No | Configurator: "Friendly Display Format"

Display format for relative date display. Valid values: Unspecified, Relative, Standard.

  • Unspecified — No special formatting
  • Relative — Displays as relative time (e.g., "2 days ago", "3 weeks from now")
  • Standard — Standard date format

# DateTimeFieldFormatType

Type: enum | Required: No | Configurator: "Display Format"

Format type for the datetime field. Valid values: DateTime (date and time), DateOnly (date only).

Note: This affects how values are displayed and input in forms.

Last Updated: 4/15/2026, 8:56:27 AM